/**
* transform
*/
#include  <algorithm>
#include  <vector>
#include  <string>
#include  <iostream>

int main() {

    std::vector<int> vec1{1, 2, 3, 4, 5};
    std::vector<std::string> vec2;

    std::transform(vec1.begin(), vec1.end(), vec2.begin(), [](int i) {
        return std::to_string(i * i);
    });

    for (const auto &s: vec2) {
        std::cout << s << std::endl;
    }
    std::accumulate(str.begin(), str.end(), string(""),
                    [](std::string a, std::string b) { return a + ":" + b; });
}

